package cz.vse.adventura.po1715.cerj117_cermak.hra;



/*******************************************************************************
 * Instance třídy {@code PříkazJdi} představuje příkaz k obhajobě
 * 
 *
 * @author    Jiří Čermák
 * @version   1.0
 */
public class PříkazAbrakadabra extends Příkaz
{
//== KONSTANTNÍ ATRIBUTY TŘÍDY =================================================



//== PROMĚNNÉ ATRIBUTY TŘÍDY ===================================================
//== KONSTANTNÍ ATRIBUTY INSTANCÍ ==============================================
//== PROMĚNNÉ ATRIBUTY INSTANCÍ ================================================
//== PŘÍSTUPOVÉ METODY VLASTNOSTÍ TŘÍDY ========================================
//== OSTATNÍ NESOUKROMÉ METODY TŘÍDY ===========================================

//##############################################################################
//== KONSTRUKTORY A TOVÁRNÍ METODY =============================================

    /***************************************************************************
     * Vytvoří instanci mající na strosti reakci na příkaz <b>jdi</b>,
     * po jehož zadaní se hráč přesune do místnosti,
     * jejíž název bude uveden za příkazem.
     */
    public PříkazAbrakadabra()
    {
        super( "Abrakadabra",
               "Kouzelný příkaz.\n");
    }


//== ABSTRAKTNÍ METODY =========================================================
//== PŘÍSTUPOVÉ METODY VLASTNOSTÍ INSTANCÍ =====================================
//== OSTATNÍ NESOUKROMÉ METODY INSTANCÍ ========================================

    /***************************************************************************
     * Přesune hráče do zadané cílové místnosti;
     * před tím však zkontroluje, zda byla zadána cílová místnost a
     * zda je do ní možno se v daném okamžiku z aktuální místnosti přesunout.
     *
     * @param parametry Místnost, kam se hráč chce přesunout
     * @return Text zpravy vypsane po provedeni prikazu
     */
    @Override
    public String execute( String... parametry )
    {
        if (parametry.length == 0) {
            return "Musí být zadán parametr pro příkaz Abrakadabra.";     //==========>
        }
        if ((parametry[0].equalsIgnoreCase("XCERJ117")) &&
             Místnosti.getAktuálníMístnost() != Místnosti.zkratka )
        {
            Místnosti.getAktuálníMístnost().pridejSouseda(Místnosti.zkratka);
            return "Můžete přejít do místnosti Zkratka."; //==========>
        }
//        if (Místnosti.getAktuálníMístnost() == Místnosti.zkratka )
//        {
//            return "toto lez provést jen v místnosti zkratka."; //==========>
//        }
         if (parametry[0].equalsIgnoreCase("abrakadabra") &&
            Místnosti.getAktuálníMístnost() == Místnosti.zkratka )
        {
             Batoh.getBatoh().přidej(new Předmět("Magie"));
             Místnosti.getAktuálníMístnost().pridejSouseda(Místnosti.nádraží);
             Stav.POTŘEBA_VYKONÁNA = true;
            return "přidala se magie do batohu."; //==========>
        }
       
        return "špatný parametr";        //==========>
    }



//== SOUKROMÉ A POMOCNÉ METODY TŘÍDY ===========================================
//== SOUKROMÉ A POMOCNÉ METODY INSTANCÍ ========================================
//== VNOŘENÉ A VNITŘNÍ TŘÍDY ===================================================
//== TESTY A METODA MAIN =======================================================
//
//    /***************************************************************************
//     * Testovací metoda.
//     */
//    public static void test()
//    {
//        PříkazJdi x = new PříkazJdi();
//    }
//    /** @param args Parametry příkazového řádku - nepoužívané. */
//    public static void main( String[] args )  {  test();  }
}
